const fs = require('fs');
const files = ['a.txt', 'b.txt', 'c.txt'];

// for (var i = 0; i < files.length; i++) {
//     fs.readFile(files[i], 'utf-8', function(error, contents) {
//         console.log(files[i] + ": " + contents);
//     });
// }
/*
undefined: BBB
undefined: AAA
undefined: CCC
*/

// 解决方案1： var -> let
/*
a.txt: A
b.txt: B
c.txt: C
*/
// for (let i = 0; i < files.length; i++) {
//     fs.readFile(files[i], 'utf-8', function(error, contents) {
//         console.log(files[i] + ": " + contents);
//     });
// }

// 解决方案2：闭包
// 但是，闭包写法降低了代码可读性
// 输出：
// a.txt: A
// c.txt: C
// b.txt: B
// for (var i = 0; i < files.length; i++) {
//     (function(i) {
//         fs.readFile(files[i], 'utf-8', function(error, contents) {
//             console.log(files[i] + ": " + contents);
//         });
//     })(i);
// }


// 解决方案3：foreach [推荐]
files.forEach(function(filesname) {
    fs.readFile(filesname, 'utf-8', function(error, contents) {
        console.log('forEach方案 ' + filesname + ": " + contents);
    });
});